package com.siwei.apply.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

/**
 * 记录业务流程对应的地块图形 Mapper 接口
 */
@Mapper
public interface NodeLandMapper {

    /**
     * 根据node_id查询地块几何信息，返回geom_db_id和并集的外边框、中心点
     *
     * @param nodeId 节点ID
     * @return 包含geomDbId、geoms、envelope、centroid的Map
     */
    Map<String, String> selectGeomByNodeId(String nodeId);

    /**
     * 根据node_id和geom_db_id创建记录
     *
     * @param nodeId 节点ID
     * @param geomDbId 几何数据库ID
     */
    void insertByNodeIdAndGeomDbId(String nodeId, String geomDbId);

    /**
     * 根据node_id删除记录
     *
     * @param nodeId 节点ID
     */
    void deleteByNodeId(String nodeId);

    /**
     * 根据项目ID与节点表名查询项目流程表中的节点ID（唯一）
     *
     * @param projectId 项目ID
     * @param nodeTableName 节点表名
     * @return 节点ID
     */
    String selectNodeIdsByProjectIdAndNodeTableName(@Param("projectId") String projectId,
                                                    @Param("nodeTableName") String nodeTableName);

}
